﻿using Black.Minecraft.Editor.Models;
using Black.Minecraft.Editor.ViewModels.Core;

namespace Black.Minecraft.Editor.ViewModels.DataModels
{
    /// <summary>
    /// DataModel type
    /// </summary>
    public class OptionsDataModel : BaseViewModel
    {
        #region Propriétés

        /// <summary>
        /// Obtient ou définit si on fait une copie de sauvegarde
        /// </summary>
        public bool BackupFile
        {
            get
            {
                return (this._data.BackupFile);
            }
            set
            {
                if ( this._data.BackupFile != value)
                {
                    this._data.BackupFile = value;
                    this.OnPropertyChanged();
                }
            }
        }

        /// <summary>
        /// Obtient ou définit le dernier fichier édité
        /// </summary>
        public string LastFile
        {
            get
            {
                return (this._data.LastFile);
            }
            set
            {
                if (this._data.LastFile != value)
                {
                    this._data.LastFile = value;
                    this.OnPropertyChanged();
                }
            }
        }

        /// <summary>
        /// Obtient ou définit si charge le dernier fichier
        /// </summary>
        public bool LoadLastFile
        {
            get
            {
                return (this._data.LoadLastFile);
            }
            set
            {
                if (this._data.LoadLastFile != value)
                {
                    this._data.LoadLastFile = value;
                    this.OnPropertyChanged();
                }
            }
        }

        #endregion

        #region Variables d'instances

        private Options _data;

        #endregion

        #region Constructeurs

        /// <summary>
        /// Constructeur de la classe
        /// </summary>
        /// <param name="data">Source de donnée</param>
        public OptionsDataModel(Options data)
            : base()
        {
            // Initialisation de la source de donnée

            this._data = data;
        }

        #endregion

        #region Fonctions publiques

        /// <summary>
        /// Retourne la source de donnée
        /// </summary>
        /// <returns>Instance de la source de donnée</returns>
        public Options GetData()
        {
            return (this._data);
        }

        /// <summary>
        /// Sauvegarde les options
        /// </summary>
        public void Save()
        {
            Options.SetOptions(this._data);
        }

        #endregion
    }
}
